package cn.tedu.charging.common.protocol;

import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;

/**
 * 统一返回结果
 */
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class JsonResult<T> {
    /**
     * 状态码 0表示成功 其他表示异常失败
     */
    Integer code;
    /**
     * 消息
     */
    String message;
    /**
     * 接口的出参,具体的数据
     * <T> 处于方法声明的返回类型之前，表明该方法是一个泛型方法。
     */
    T data;
    public static <T> JsonResult<T> ok(T data,String msg) {
        JsonResult<T> result = new JsonResult<>();
        result.setCode(0);
        result.setData(data);
        result.setMessage(msg);
        return result;
    }
    public static <T> JsonResult<T> ok(T data) {
        return ok(data,"OK");
    }
    public static JsonResult<Void> ok() {
        return ok(null);
    }
}
